package cn.iocoder.yudao.module.api.member.assets.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;

@Schema(description = "数字资产 Response VO")
@Data
public class MemberDigitalAssetsRespDTO implements Serializable {
    public static final MemberDigitalAssetsRespDTO EMPTY = new MemberDigitalAssetsRespDTO();

    static {
        EMPTY.setExperience(0);
        EMPTY.setExperienceGet(0);
        EMPTY.setGrowth(0);
        EMPTY.setGrowthGet(0);
        EMPTY.setPoint(0);
        EMPTY.setPointGet(0);
        EMPTY.setPoint(0);
        EMPTY.setPointGet(0);
        EMPTY.setRevenue(BigDecimal.ZERO);
        EMPTY.setRevenueGet(BigDecimal.ZERO);
        EMPTY.setCommission(BigDecimal.ZERO);
        EMPTY.setCommissionGet(BigDecimal.ZERO);
        EMPTY.setRedPacket(BigDecimal.ZERO);
        EMPTY.setRedPacketGet(BigDecimal.ZERO);
        EMPTY.setCryptocurrency(BigDecimal.ZERO);
        EMPTY.setCryptocurrencyOrigin(BigDecimal.ZERO);
        EMPTY.setCryptocurrencyFreezing(BigDecimal.ZERO);
        EMPTY.setCryptocurrencyGet(BigDecimal.ZERO);
        EMPTY.setCredit(BigDecimal.ZERO);
        EMPTY.setCreditGet(BigDecimal.ZERO);
        EMPTY.setShareholding(BigDecimal.ZERO);
        EMPTY.setShareholdingGet(BigDecimal.ZERO);
        EMPTY.setBonus(BigDecimal.ZERO);
        EMPTY.setBonusGet(BigDecimal.ZERO);
        EMPTY.setInterest(BigDecimal.ZERO);
        EMPTY.setInterestGet(BigDecimal.ZERO);
    }

    @Schema(description = "当前经验，用于计算普通用户的等级")
    private int experience;

    @Schema(description = "累计获得的经验")
    private int experienceGet;

    @Schema(description = "当前成长值/贡献值，用于计算普通会员的等级")
    private int growth;

    @Schema(description = "累计获得的贡献值")
    private int growthGet;

    @Schema(description = "当前积分，用于消费抵扣")
    private int point;

    @Schema(description = "累计获得的积分")
    private int pointGet;

    @Schema(description = "当前营业收益，通过售卖产品或提供服务获得")
    private BigDecimal revenue;

    @Schema(description = "累计获得的营业收益")
    private BigDecimal revenueGet;

    @Schema(description = "当前佣金，通过推广赚取")
    private BigDecimal commission;

    @Schema(description = "累计获得的佣金")
    private BigDecimal commissionGet;

    @Schema(description = "当前红包，用于消费抵扣")
    private BigDecimal redPacket;

    @Schema(description = "累计获得的红包")
    private BigDecimal redPacketGet;

    @Schema(description = "当前联盟豆（含收益豆），用于抵扣、兑换产品、兑换现金")
    private BigDecimal cryptocurrency;

    @Schema(description = "未增值的联盟豆")
    private BigDecimal cryptocurrencyOrigin;

    @Schema(description = "增值过的联盟豆（收益豆）")
    private BigDecimal cryptocurrencyIncrement;

    @Schema(description = "增值中的联盟豆（收益池）")
    private BigDecimal cryptocurrencyIncreasing;

    @Schema(description = "冻结中的联盟豆")
    private BigDecimal cryptocurrencyFreezing;

    @Schema(description = "累计获的的联盟豆")
    private BigDecimal cryptocurrencyGet;

    @Schema(description = "当前信用值")
    private BigDecimal credit;

    @Schema(description = "累计获的的信用值")
    private BigDecimal creditGet;

    @Schema(description = "当前股权/公益勋章/持股量/股份/种子资产，用于增长股权、增长利息")
    private BigDecimal shareholding;

    @Schema(description = "累计获得的持股量")
    private BigDecimal shareholdingGet;

    @Schema(description = "当前勋章，持股量相当于公益勋章，股权增长相当于公益勋章增值")
    private BigDecimal medal;

    @Schema(description = "当前分红，用于兑换现金")
    private BigDecimal bonus;

    @Schema(description = "累计获得的分红")
    private BigDecimal bonusGet;

    @Schema(description = "当前消费金/利息，用于兑换现金")
    private BigDecimal interest;

    @Schema(description = "累计获得的消费金")
    private BigDecimal interestGet;

    @Schema(description = "当前手续金/金币，用于充当手续费")
    private BigDecimal handlingFee;

    @Schema(description = "累计获得的手续金")
    private BigDecimal handlingFeeGet;

}